<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="description" content="汇联易是领先的一站式商旅及费用报销SaaS解决方案，连接差旅及企业消费服务商，无缝对接企业内部管理系统，从消费、报销、财务管理着手，打通企业日常消费的全流程，让费用管控更加合规、透明，全方位提升员工报销体验及企业运营效率."/>
  <meta name="keywords" content="汇联易,费用控制,财务控制,费用报销,商旅报销,发票报销,报销"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <link rel="icon" type="image/x-icon" href="/static/favicon.ico" />
  <style>
    body {
      background-color: #dedede;
      font-size: 12px;
    }
    #content-guide, #content-guide-helper{
      position: absolute;
      left: 0;
      top: 0;
      min-width: 1024px;
      width: 100vw;
      height: 100vh;
      bottom: 0;
      z-index: 4;
      display: none;
    }
    #menu-guide,#menu-guide-helper{
      position: absolute;
      left: 0;
      top: 0;
      min-width: 1024px;
      width: 100vw;
      height: 100vh;
      bottom: 0;
      z-index: 6;
      display: none;
    }
  </style>
</head>
<body>
<div id="app"></div>
<div id="content-guide"></div>
<div id="content-guide-helper"></div>
<div id="menu-guide"></div>
<div id="menu-guide-helper"></div>
<script>
  String.prototype.startsWith = function(str){
    var reg = new RegExp("^" + str);
    return reg.test(this);
  };
  String.prototype.endsWith = function(str){
    var reg = new RegExp(str + "$");
    return reg.test(this);
  };
  if (window.location !== top.location) top.location = window.location;
</script>
<script>
  //Babel源码中在处理继承的时候使用了Object.setPrototypeOf，如果没有这个函数则直接赋值 ___proto___
  //Babel源码：
  //处理继承时：Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
  //子类使用时：Object.getPrototypeOf(Child).apply(this, arguments);
  //setPrototypeOf是ES6的方法需要IE11+，且___proto___也是需要IE11+才支持，源码只判断了setPrototypeOf而忘记了___proto___
  //所以实际调用了subClass.__proto__ = superClass;后，下方的Object.getPrototypeOf(Child)得到的是Function.prototype
  //所以这里改写原生的getPrototypeOf方法，在不支持的时候如果对象有__proto__则直接返回__proto__即可
  (function() {
    var testObject = {};
    if (!(Object.setPrototypeOf || testObject.__proto__)) {
      var nativeGetPrototypeOf = Object.getPrototypeOf;
      //重写getPrototypeOf，如果有___proto___则直接返回
      Object.getPrototypeOf = function(object) {
        if (object.__proto__) {
          return object.__proto__;
        } else {
          return nativeGetPrototypeOf.call(Object, object);
        }
      }
    }
  })();
  //IE9下console只会在浏览器启动调试时才会启用，不开启时会阻止流程
  //所以这里重写console.log
  (function() {
    if (!window.console) {
      window.console = {};
    }
    var consoleArr = ['log', 'info', 'warn', 'error', 'dir', 'time', 'timeEnd', 'trace', 'assert', 'Console', 'debug', 'dirxml', 'table', 'group', 'groupCollapsed', 'groupEnd', 'clear', 'count', 'markTimeline', 'profile', 'profileEnd', 'timeline', 'timelineEnd', 'timeStamp'];
    var consoleLen = consoleArr.length;
    while (consoleLen--) {
      if (!window.console[consoleArr[consoleLen]]) {
        window.console[consoleArr[consoleLen]] = function() {};
      }
    }
  })();
</script>
<script src="/static/polyfill.min.js"></script>
<script src="/static/Blob.min.js"></script>
<script src="/static/es5-shim.min.js"></script>
<script type="text/javascript" src="/static/sentry-browser.min.js" crossorigin="anonymous"></script>
<script type="text/javascript" src="/static/ECharts/echarts.min.js"></script>
<script type="text/javascript" src="/static/ECharts/echarts.helios.js"></script>
<script>__REACT_DEVTOOLS_GLOBAL_HOOK__ = parent.__REACT_DEVTOOLS_GLOBAL_HOOK__</script>
<script type="text/javascript" src="/assets/app.js"></script>
<script type="text/javascript" src="/assets/vendor.js"></script>
</body>

<script>
  (function() {
    var websiteList = {
      'console-tc.huilianyi.com': '//hm.baidu.com/hm.js?6bcd39d3dd47ba8d9066b32c48ed4ed4',
      'console-my.huilianyi.com': '//hm.baidu.com/hm.js?cbdb73928fc869e9c0f23c781056c177',
      'console-sg.huilianyi.com': '//hm.baidu.com/hm.js?ad8a0ecf639652382291360899739854',
      'console.huilianyi.com': '//hm.baidu.com/hm.js?b104ff95e8249d7ca3a9731379f7cb3b',
      'stage.huilianyi.com': '//hm.baidu.com/hm.js?53bb23f2e1f59a4c02d6f7888f217ef2'
    };
    var host = window.location.host;
    Object.keys(websiteList).forEach(str => {
      if(str.indexOf(host) >= 0) {
        var hm = document.createElement("script");
        hm.src = websiteList[str];
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
      }
    });
  })();
</script>

<script>
  (function() {
    var host = window.location.host;
    var str = "console.huilianyi.com";
    function isContains(str, substr) {
      return str.indexOf(substr) >= 0;
    }
    if(isContains(host, str)){
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?334b7a64ee121fc10cabca8e6d0f2dd2";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    }
  })();
</script>

<!-- Global site tag (gtag.js) - Google Analytics -->
<script>
  var host = window.location.host;
  if(host.indexOf('console.huilianyi.com') >= 0) {
    var hm = document.createElement("script");
    hm.async = true;
    hm.src = "https://www.googletagmanager.com/gtag/js?id=UA-88248964-2";
    var s = document.getElementsByTagName("script")[0];
    s.parentNode.insertBefore(hm, s);
    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag('js', new Date());
    gtag('config', 'UA-88248964-2');
  }
</script>
<script>
  (function() {
    var lastTime = 0;
    var vendors = ['ms', 'moz', 'webkit', 'o'];
    for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
      window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
      window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']
        || window[vendors[x]+'CancelRequestAnimationFrame'];
    }

    if (!window.requestAnimationFrame)
      window.requestAnimationFrame = function(callback, element) {
        var currTime = new Date().getTime();
        var timeToCall = Math.max(0, 16 - (currTime - lastTime));
        var id = window.setTimeout(function() { callback(currTime + timeToCall); },
          timeToCall);
        lastTime = currTime + timeToCall;
        return id;
      };

    if (!window.cancelAnimationFrame)
      window.cancelAnimationFrame = function(id) {
        clearTimeout(id);
      };
  })();
</script>

</html>

